#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
#include <QMediaPlayer>  // 播放者
#include <QMediaPlaylist>  // 播放列表
#include <QVideoWidget>  // 播放窗口
#include <QtSql/QSqlDatabase>  // 管理数据库连接
#include <QtSql/QSqlQuery>  // 用于执行sql语句
#include "videosurface.h"

namespace Ui {
class Widget;
}

class Widget : public QWidget
{
    Q_OBJECT

public:
    explicit Widget(QWidget *parent = 0);
    void paintEvent(QPaintEvent *event);  // 绘图事件

    ~Widget();

private slots:
    void on_openFile_pushButton_clicked();

    void on_play_pause_pushButton_clicked();

    void on_stop_pushButton_clicked();

    void on_getimage_pushButton_clicked();

    void on_del_pushButton_3_clicked();

    void on_music_horizontalSlider_2_valueChanged(int value);

    void on_progress_horizontalSlider_valueChanged(int value);

    void updateDuration(qint64 duration);

    void updatePosition(qint64 position);

    void onShowImage(QVideoFrame frame);

    void on_love_pushButton_clicked();

    void on_speed_pushButton_clicked();

private:
    Ui::Widget *ui;
    // 创建播放器相关的指针
    QMediaPlayer * my_video_player = nullptr;
    QMediaPlaylist * my_video_list = nullptr;
    QVideoWidget * my_video_widget = nullptr;

    VideoSurface * my_videosurface = nullptr;  // 截屏的时候,将视频输出流转移到VedioSurface上
    QSqlDatabase db;  // 当前播放列表的数据库

    QString now_play_vedio;  // 记录当前正在播放的视频名称


    bool is_start = false;  // 当时视频的状态
    bool is_speed = false;  // 当前视频是否加速
};

#endif // WIDGET_H
